package com.pet_service.exception;

import com.pet_service.result.Result;
import io.swagger.v3.oas.annotations.Hidden;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * @author 邹全伸
 * @version 1.0
 * @date 2025-10-05 14:53
 */
//异常处理类
@ControllerAdvice
@Hidden
public class GlobalExceptionHandler {

    //切面类： 把增强 应用到 切入点
    //我们现在增强是什么： 异常处理
    //我们现在切入点：出现异常的方法
    //难点：知道哪个方法出现了异常 @ExceptionHandler

    //出现异常执行的方法
    @ExceptionHandler(Exception.class)
    @ResponseBody
    public Result error(Exception e) {
        e.printStackTrace();
        return Result.fail();
    }

    @ExceptionHandler(BusinessException.class)
    @ResponseBody
    public Result error(BusinessException e) {
        e.printStackTrace();
        Integer code = e.getResultCodeEnum().getCode();
        String message = e.getMessage();
        return Result.fail(code,message);
    }

}
